草庐IT

Java JUnit assertEquals 与 Long

全部标签

java - 如何将两个 long 转换为字节数组 = 如何将 UUID 转换为字节数组?

我正在使用JavasUUID并且需要将UUID转换为字节数组。奇怪的是,UUID类没有提供"toBytes()"方法。我已经了解了这两种方法:UUID.getMostSignificantBits()andUUID.getLeasSignificantBits()但是如何把它变成一个字节数组呢?结果应该是一个带有这些拖车值的字节[]。我不知何故需要进行Bitshifting,但是怎么做?更新:我发现:ByteBufferbyteBuffer=MappedByteBuffer.allocate(2);byteBuffer.putLong(uuid.getMostSignificantBi

java - 为什么java中BitSet的内部数据存储为long[]而不是java中的int[]?

在java中,BitSet的内部数据存储为long[]而不是int[],我想知道为什么?这是jdk中的代码:/***TheinternalfieldcorrespondingtotheserialField"bits".*/privatelong[]words;如果一切都与性能有关,我想知道为什么long[]存储会获得更好的性能。 最佳答案 查询或操作单个位时,没有显着差异。您必须计算单词索引并读取该单词,并且在更新的情况下,操作该单词的一位并将其写回。int[]和long[]都是一样的。有人可能会争辩说使用long而不是int可能

Java 算术 int 与 long

我在谷歌上做了一些搜索,但我似乎找不到我要找的东西。我正在尝试查找有关Java中算术工作方式的一些详细信息。例如,如果将两个long加在一起,是否使用与将两个int加在一起时使用的相同的加法运算符?此外,当您在像这样的算术表达式中混合long和int时,幕后发生了什么:longresult;longoperanda=1;intoperandb=999999999;result=a+b;如果有人能阐明这一点或发布相关文章的链接,那就太棒了。谢谢!编辑:感谢到目前为止的回复。此外,只要您在表达式中赋值给最广泛的原始类型的变量,使用不同的原始类型执行算术是否安全?

java - long % int 是否总是适合 int

谁能证实这是不是真的?Java会将long%int转换为long值。但是,它永远不能大于模数,因此将它转换为int总是安全的。longa=intb=intc=(int)(a%b);//castisalwayssafe.同样,long%short转换为short总是安全的。如果为真,有人知道为什么Java的%类型比需要的长吗?此外,long和int也有类似的情况(如果忽略符号扩展) 最佳答案 对于大多数(如果不是全部)算术运算,Java会假定您需要最大定义精度。想象一下,如果您这样做:longa=...;intb=...;longc=

java.lang.Long 无法在 Java 中转换为 java.lang.String

我收到的回复是这样的:[{Id=1066276530,Key1=1815401000238},{Id=1059632250,Key1=1815401000244}]当我迭代并将值转换为字符串时,它会抛出错误:java.lang.Longcannotbecasttojava.lang.StringinJavafor(Mapmap:leadIds){for(Map.Entryentry:map.entrySet()){StringapplicationNumber=(String)entry.getValue();}}我想将值转换成字符串。这里有什么问题吗? 最

java - 如何在 java 中将内容长度设置为 http header 中的 long 值?

我正在用Java编写一个Web服务器,它可以正常传输高达2GB的文件。当我查找原因时,我发现像javaHttpServelet只允许我们将内容长度设置为int。由于整数的最大大小为2GB,因此当我使用response.setContentLength方法时,它可以正常工作高达2GB。现在的问题是默认response.setContentLength有整数参数。所以它没有将long值作为参数。我已经试过了response.setHeader("Content-Length",Long.toString(f.length()));response.addHeader("Content-Le

java - Generics Oddity - 我可以将一个 Long 值插入到 Map<String, String> 中,它会编译并且不会在运行时失败

输入以下代码:publicstaticvoidmain(String[]args){HashMaphashMap=newHashMap();HashMapdataMap=newHashMap();dataMap.put("longvalue",5L);classTestMethodHolder{TgetValue(MapdataMap,Stringvalue){return(T)dataMap.get(value);}}hashMap.put("test",newTestMethodHolder().getValue(dataMap,"longvalue"));Stringvalue=

java - 如何检查 List<Long> 是否包含一个值?

我有listListlist,其中包含:[160774,7212775]和Longid=7212775.我需要检查列表是否包含值为id的元素.怎么做?遗憾list.contains(id)返回false就我而言。我就是这样使用它的:@RequestMapping("/case/{id}")publicStringopenCase(@PathVariable("id")Longid){log.debug(caseDAO.findAllCasesId());//[160774,7212775]log.debug(id);//7212775if(caseDAO.findAllCasesId(

java - 在 Java 中对 long 进行位移

我相信这对第一个看到它的人来说很简单!为什么Java中的代码是这样的longone=1打印1=11073741824=1000000000000000000000000000000-2147483648=11111111111111111111111111111111100000000000000000000000000000001=1这对我来说没有意义。long是一个64位数字-而它在上面看起来像一个int。我知道移位的byte会进行int提升,但我看不到这种情况下发生了什么。任何关于这里发生的事情的指示都会很好:)谢谢编辑:感谢所有的回答-我一点击“提交”就意识到发生了什么,但是进

java - long/int 除法中的意外结果

我有这样的值(value)观:longmillis=11400000;intconsta=86400000;doubleres=millis/consta;问题是:为什么res等于0.0(而不是大约0.131944)?它存储在double中,所以不应该四舍五入吗? 最佳答案 当您使用二元运算符时,两个参数应该是同一类型并且结果也将是它们的类型。当你想划分(int)/(long)它变成了(long)/(long)结果是(long).你应该做到(double)/(long)或(int)/(double)得到双重结果。由于double大于